package com.es.core.utils;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * fastJson工具类
* @author zhang lj
* @version 2015年9月13日  下午3:53:45
*/
public class FastJSONUtil {
	private static final SerializerFeature[] features = { SerializerFeature.WriteNullListAsEmpty, // list字段如果为null，输出为[]，而不是null
			SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null，输出为0，而不是null
			SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null，输出为false，而不是null
			SerializerFeature.WriteNullStringAsEmpty // 字符类型字段如果为null，输出为""，而不是null
	};

	/**
	 * 获取Json格式化数据
	 * 
	 * @param object
	 * @return
	 */
	public static String toJsonString(Object object) {

		return JSON.toJSONString(object, features);
	}

	/**
	 * JSON字符串转换成java对象
	 * 
	 * @param jsonString
	 * @param clazz
	 * @return
	 */
	public static <T> T toObject(String jsonString, Class<T> clazz) {

		return JSON.parseObject(jsonString, clazz);
	}

	/**
	 * 转换JSON集合
	 * 
	 * @param jsonString
	 * @param clazz
	 * @return
	 */
	public static <T> List<T> toArray(String jsonString, Class<T> clazz) {

		return JSON.parseArray(jsonString, clazz);
	}

}
